延續昨天我們所建置的project,在繼續建置Django的路上,想先跟大家分享一下在Django用來控制專案大小事的django-admin和manage.py,談談他們的用途以及如何去使用!以及兩者的差異與使用上該如何選擇!
昨天有提到manage.py可以幫助我們管理Django的專案,不知道你們會不會有疑問都是在管理專案,manage.py和django-admin的差別在哪裡呢? 在什麼時候需要使用他們?
首先我們可以透過 --help來查看兩者。
(django_env) PS C:\Users\user\Django_website\Django_project>python manage.py --help
Type 'manage.py help <subcommand>' for help on a specific subcommand.
Available subcommands:
[auth]
changepassword
createsuperuser
[contenttypes]
remove_stale_contenttypes
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
optimizemigration
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
[sessions]
clearsessions
[staticfiles]
collectstatic
findstatic
runserver
(django_env) PS C:\Users\user\Django_website\Django_project> django-admin --help
Type 'django-admin help <subcommand>' for help on a specific subcommand.
Available subcommands:
[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations
migrate
optimizemigration
runserver
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp
startproject
test
testserver
可以看到在基本上兩者能做的事情都是一樣的,但是manage.py除了本身的管理,還能對靜態文件、session和權限進行一些操作。
在我查詢官方文件時看到它的說明,寫到兩者基本上是一樣的,但我實際試著操作時發現,mange.py還是多了[auth][contenttypes][sessions][staticfiles] 等功能。
而且當你使用Django時,你必須告訴他你在使用哪一種設定,貼心的manage.py 還會幫你設置 DJANGO_SETTINGS_MODULE 的環境變數並指向 setting.py。
因此建議在使用時還是以使用manage.py為優先。
如果你想要了解指令可以做什麼和怎麼使用可以在指令加上 -h,就可以看到簡單的介紹和用法,以我們使用過的runserver為例。
在usage中就可以看runserver可以怎麼去使用,並在option中看到語法的解釋,大家如果有興趣也可以稍微去試著查看。
(django_env) PS C:\Users\user\Django_website\Django_project> python manage.py runserver -h
usage: manage.py runserver [-h] [--ipv6] [--nothreading] [--noreload] [--nostatic] [--insecure] [--version] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--no-color]
[--force-color] [--skip-checks]
[addrport]
Starts a lightweight web server for development and also serves static files.
positional arguments:
addrport Optional port number, or ipaddr:port
options:
-h, --help show this help message and exit
--ipv6, -6 Tells Django to use an IPv6 address.
--nothreading Tells Django to NOT use threading.
--noreload Tells Django to NOT use the auto-reloader.
--nostatic Tells Django to NOT automatically serve static files at STATIC_URL.
--insecure Allows serving static files even if DEBUG is False.
--version Show program's version number and exit.
--settings SETTINGS The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be
used.
--pythonpath PYTHONPATH
A directory to add to the Python path, e.g. "/home/djangoprojects/myproject".
--no-color Don't colorize the command output.
--force-color Force colorization of the command output.
--skip-checks Skip system checks.
這些就是今天的內容了,是不是又對Django有新的瞭解了呢,明天我們就會開始App的建置囉!
https://docs.djangoproject.com/en/4.1/ref/django-admin/